package Concorrentes;

public class Pedestre implements Runnable {

	private int id;
	private int trecho;
	
	public Pedestre(int id, int trecho) {
		this.trecho = trecho;
		this.id = id;
	}
	
	public int getTrecho(){
		return this.trecho;
	}
	
	public int getId(){
		return id;
	}
	
	public void run() {
		while( !Controlador.fimDaSimulacao() || Controlador.temCarrosSubindoSerra()  ){
			olhaOsPassaros();
			atravessaPista();
		}
	}

	private void olhaOsPassaros() {
		try {
			Thread.sleep((int)(Math.random()*10000));
		} catch (InterruptedException e) {
		}
	}

	private void atravessaPista() {
		if(podeAtravessar(trecho)){
			caminhaPelaFaixa();
		}
	}

	private boolean podeAtravessar(int t) {
		return true;
	}

	private void caminhaPelaFaixa() {
		Controlador.addPedestreNoTrecho(trecho);
		try {
			Thread.sleep((int)(Math.random()*5000));
		} catch (InterruptedException e) {
		}
		Controlador.removePedestreNoTrecho(trecho);
	}

}

